/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import util.Dao;
import java.sql.Date;
import java.sql.SQLException;
import java.util.ArrayList;
import modelo.Documento;
import util.Conexao;

/**
 *
 * @author bruno
 */
public class DocumentoDao extends Dao<Documento> {

    /**
     * 
     */
    public DocumentoDao() {
        super(new Conexao("Aurea", "aurea", "aurea", Conexao.sqlServerDriver));
    }

    @Override
    protected Documento novoModelo() {
        return new Documento();
    }

    @Override
    protected void definirParametrosGravar() throws SQLException {
        conexao.getStatement().setInt(1, modelo.getNomeDocumento().getId());
        conexao.getStatement().setDate(2, new Date(modelo.getDataValidade().getTime()));
        conexao.getStatement().setString(3, modelo.getCaminho());
    }

    @Override
    protected void definirParametrosLer() throws SQLException {
        modelo.setDataValidade(conexao.getResultSet().getDate("dataValidade"));
        modelo.setCaminho(conexao.getResultSet().getString("caminho"));
        modelo.setNomeDocumento(
                new NomeDocumentoDao().ler(
                conexao.getResultSet().getInt("fkNomeDocumento")));        
    }

    @Override
    public boolean gravar(Documento modelo) {
        return gravarModelo("INSERT INTO "
                + "tbDocumento(fkNomeDocumento,dataValidade,caminho) "
                + "VALUES ( ?, ?, ?) ", modelo);
    }

    @Override
    public Documento ler(int id) {
        return lerModelo("SELECT * FROM tbDocumento WHERE idDocumento = ? ", id);
    }

    @Override
    public ArrayList<Documento> lerTodos() {
        return lerTodos("SELECT * FROM tbDocumento");
    }
}
